Micron Document
Fox's Git Mirrors

Node / rns-mirrors / Reticulum-Go.git / files / pkg / node / discovery_test.go

Displaying Raw • Download

pkg/node/discovery_test.go 201d27032fbc0af2fd0a560de603cd8786ee75b5 (201d2703) Text, 1.57 KB

// SPDX-License-Identifier: Apache-2.0
// Copyright (c) 2024-2026 Quad4.io

package node

import (
"testing"

"quad4/reticulum-go/pkg/common"
)

func TestStartInterfaceDiscovery(t *testing.T) {
cfg := common.DefaultConfig()
cfg.DiscoverInterfaces = true
n, err := New(cfg)
if err != nil {
t.Fatal(err)
}
n.StartInterfaceDiscovery()
if n.discovery == nil {
t.Fatal("expected interface discovery listener")
}
n.StartInterfaceDiscovery()
n.discovery.Stop()
}

func TestStartInterfaceDiscoveryDisabled(t *testing.T) {
cfg := common.DefaultConfig()
cfg.DiscoverInterfaces = false
n, err := New(cfg)
if err != nil {
t.Fatal(err)
}
n.StartInterfaceDiscovery()
if n.discovery != nil {
t.Fatal("discovery should not start when disabled")
}
}

func TestStartInterfaceDiscoveryFromDiscoverable(t *testing.T) {
cfg := common.DefaultConfig()
cfg.DiscoverInterfaces = false
cfg.Interfaces = map[string]*common.InterfaceConfig{
"pub": {
Type: "TCPServerInterface",
Enabled: true,
Discoverable: true,
Port: 4242,
ReachableOn: "127.0.0.1",
},
}
n, err := New(cfg)
if err != nil {
t.Fatal(err)
}
defer n.Stop()
// Transport identity is created on Start. Seed one for announcer.
if err := n.Transport().InitializePathRequestHandler(); err != nil {
t.Fatal(err)
}
n.StartInterfaceDiscovery()
if n.discovery == nil {
t.Fatal("expected discovery listener from discoverable interface")
}
if n.announcer == nil {
t.Fatal("expected interface announcer")
}
n.announcer.Stop()
n.discovery.Stop()
}

Served by rngit 1.5.2 - Generated in 0.02s